package com.tang.domian;

import lombok.Data;
import lombok.experimental.Accessors;

import java.io.Serializable;
import java.util.List;


@Data
@Accessors(chain = true)
public class Token implements Serializable {

    private static final long serialVersionUID = -1L;

    /**
     * 平台开发者
     */
    private static final Integer ROLE_ADMIN = 1;

    /**
     * 平台维护者
     */
    private static final Integer ROLE_OPS = 2;

    /**
     * 平台管理员
     */
    private static final Integer ROLE_PLATFORM_MANAGER = 3;

    /**
     * 企业管理员
     */
    private static final Integer ROLE_FIRM_MANAGER = 4;

    /**
     * siks hr
     */
    private static final Integer SIKS_HR = 68;

    /**
     * 用户id
     */
    private Integer userId;

    /**
     * 用户姓名
     */
    private String username;

    /**
     * 角色id
     */
    private Integer roleId;

    /**
     * 用户分组id
     */
    private Integer groupId;

    /**
     * 公司id
     */
    private Integer firmId;

    /**
     * 权限code列表
     */
    private List<String> authorityCodes;

    /**
     * 是否超管
     *
     * @return
     */
    public boolean isDev() {
        return ROLE_ADMIN.equals(this.roleId);
    }

    /**
     * 是否平台运维者
     *
     * @return
     */
    public boolean isOps() {
        return ROLE_OPS.equals(this.roleId);
    }

    /**
     * 是否平台管理员
     *
     * @return
     */
    public boolean isPlatformManager() {
        return ROLE_PLATFORM_MANAGER.equals(this.roleId);
    }

    /**
     * 是否企业管理员
     *
     * @return
     */
    public boolean isFirmManager() {
        return ROLE_FIRM_MANAGER.equals(this.roleId);
    }

    /**
     * 是否siksHR
     *
     * @return
     */
    public boolean isSIKSHR() {
        return SIKS_HR.equals(this.roleId);
    }


}
